package com.example.onlineanswer.model.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.List;

/**
 * 题目实体类
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("question")
public class Question extends BaseEntity {

    /**
     * 所属竞赛ID
     */
    @TableField("contest_id")
    private Long contestId;

    /**
     * 题目类型ID（1：单选题，2：多选题，3：判断题，4：填空题，5：简答题）
     */
    @TableField("type_id")
    private Long typeId;

    /**
     * 题目内容
     */
    @TableField("content")
    private String content;

    /**
     * 题目难度（1：简单，2：中等，3：困难）
     */
    @TableField("difficulty")
    private Integer difficulty;

    /**
     * 题目分值
     */
    @TableField("score")
    private Integer score;

    /**
     * 答题时间限制（秒）
     */
    @TableField("time_limit")
    private Integer timeLimit;

    /**
     * 题目排序号
     */
    @TableField("order_num")
    private Integer orderNum;

    /**
     * 正确答案（用于判断题）
     */
    @TableField(exist = false)
    private Boolean correctAnswer;

    /**
     * 参考答案（用于填空题和简答题）
     */
    @TableField(exist = false)
    private String referAnswer;

    /**
     * 状态（0：待审核，1：已通过，2：已拒绝）
     */
    @TableField("status")
    private Integer status;

    /**
     * 审核意见
     */
    @TableField("review_comment")
    private String reviewComment;

    /**
     * 审核人ID
     */
    @TableField(exist = false)
    private Long reviewerId;

    /**
     * 选项列表（非数据库字段，用于前端交互）
     */
    @TableField(exist = false)
    private List<QuestionOption> options;
} 